// =============================================================================
// | 包: conf                                                                 |
// | 模块: QQ登录配置                                                         |
// | 功能: 定义QQ第三方登录相关的配置结构体和方法                              |
// =============================================================================
package conf

import "fmt" // 格式化包 - 用于字符串格式化和输出

// =============================================================================
// | 结构体: QQ                                                               |
// | 功能: QQ第三方登录配置结构体                                             |
// | 用途: 存储QQ OAuth2.0登录所需的配置信息，用于生成QQ登录链接              |
// | 映射: YAML配置文件中的qq节点                                              |
// =============================================================================
type QQ struct {
	// =============================================================================
	// | 字段: AppID - string                                                    |
	// | 功能: QQ开放平台应用ID                                                  |
	// | 说明: 在QQ开放平台申请的应用唯一标识                                    |
	// | 映射: YAML配置中的appID字段                                             |
	// =============================================================================
	AppID string `yaml:"appID" json:"appID"` // QQ应用ID - 开放平台应用唯一标识
	
	// =============================================================================
	// | 字段: AppKey - string                                                   |
	// | 功能: QQ开放平台应用密钥                                                |
	// | 说明: 在QQ开放平台申请的应用密钥，用于接口签名                          |
	// | 映射: YAML配置中的appKey字段                                            |
	// =============================================================================
	AppKey string `yaml:"appKey" json:"appKey"` // QQ应用密钥 - 开放平台应用密钥
	
	// =============================================================================
	// | 字段: Redirect - string                                                 |
	// | 功能: 授权回调地址                                                      |
	// | 说明: 用户授权后跳转的回调地址，需与开放平台配置一致                    |
	// | 映射: YAML配置中的redirect字段                                          |
	// =============================================================================
	Redirect string `yaml:"redirect" json:"redirect"` // 回调地址 - 授权后跳转地址
}

// =============================================================================
// | 方法: Url                                                                |
// | 接收者: @q - QQ (QQ配置结构体)                                            |
// | 参数: 无                                                                  |
// | 返回: @string - 格式化的QQ登录URL                                         |
// | 功能: 生成QQ OAuth2.0登录链接                                            |
// | 说明: 生成的URL可直接用于用户登录授权                                     |
// |----------------------------------------------------------------------------|
// | 流程:                                                                     |
// | 1. 使用fmt.Sprintf格式化登录URL                                           |
// | 2. 返回完整的QQ登录链接                                                  |
// =============================================================================
func (q QQ) Url() string {
	// 生成QQ OAuth2.0登录授权URL
	return fmt.Sprintf("https://graph.qq.com/oauth2.0/show?which=Login&display=pc&response_type=code&client_id=%s&redirect_uri=%s", q.AppID, q.Redirect)
}
